import Vue from 'vue'
import Axios from 'axios'
import VueAxios from 'vue-axios'
import Qs from 'qs'
import apiConfig from '../../config/api/index'

let base = '/api'

// 发送Post请求时，对参数进行格式化并修改contentType
let instance = Axios.create({
  transformRequest: [function (data) {
    data = Qs.stringify(data)
    return data
  }],
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded'
  }
})



// 根据配置文件，加载接口信息
Vue.prototype.api = {}
Object.keys(apiConfig).forEach((key) => {
  Vue.prototype.api[key] = {}
  apiConfig[key].forEach(item => {
    Vue.prototype.api[key][item.funName] = params => {
      if(item.methodType === 'post') {
        return instance.post(`${base}/${item.url}`, params)
      }else {
        return instance.get(`${base}/${item.url}?${params}`)
      }
    }
  })
}) 

// 为Vue其他组件提供服务实例，在其他组件内可通过`this.$http`获取实例
Vue.use(VueAxios, instance)

console.log('config', apiConfig)

